package MAIN;
//笔试强训第29天
//选择题
/*包装类是继承于Number的，实现了Comparable接口的*/
/*在HashSet中，判断两个元素是否相同，先调用对象的hashcode方法将对象映射为数组下标
* 再通过equals来判断元素内容是否相同*/
/*在实例化一个对象时，继承了先调用父类的构造方法，如果父类中有成员变量的初始化操作都在构造方法中进行*/
/*在一个类中，如果实例化的对象要进行比较，必须重写equals方法，负责调用的是Object类的equals方法
* Object类的equals方法，是用==来比较的，所以默认的是比较的对象的地址是否相同，但是如果是字符串的比较
* String类是重写了equals方法的*/
/**/
import java.util.Scanner;
import java.util.StringTokenizer;
//编程题
public class Main29 {
    //求正数数组的最小不可组成和
    //思路：先把能满足的子集和找到：arr[i] = j; 然后再进行递推：
    //如果f(j - arr[i] == true)，那么堆arr[i]元素来说，满足arr[j] = true
    //对于题解来说，可以让arr[i] = j时，也满足f(j-arr[i] == true)，即f(0) = true
    //每次只是更新f(j)的值即可，如果f(j) = true ，就不需要更新，
    // 如果为false，更新f(j-arr[i])的值
    public static int getFirstUnFormedNum(int[] arr) {
        //先找出子集最小值和最大值
        int min = Integer.MAX_VALUE;
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min) min = arr[i];
            max += arr[i];
        }
        //
        boolean[] result = new boolean[max + 1];
        result[0] = true;
        for (int o : arr) {
            for (int i = max; i >= o; i--) {
                result[i] = result[i-o] || result[i];
            }
        }
        for (int i = min; i < result.length; i++) {
            if (!result[i]) {
                return i;
            }
        }
        return max + 1;
    }
    public static void main1(String[] args) {
        int[] arr = {3,2,5};
        System.out.println(getFirstUnFormedNum(arr));;
    }
    //有假币，注：用最快的方式把假币找出来
    //最快的方式是分三堆，使用其中两堆称重即可
    //问的是最多需要称重几次，所以最坏的情况就是假币在最多的那份中
    //每次分三份：找对多的那份，即为n/3,然后向上取整
    //向上取整：Math.ceil()方法，注：传入的参数是一个double类型的参数
    //但是int / int类型最后返回的结果还是int类型，所以需要进行强转
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int n = scan.nextInt();
            if (n == 0) break;
            int count = 0;
            while (n >= 2) {
                n = (int) Math.ceil((double) n / 3);
                count++;
            }
            System.out.println(count);
        }
    }
}
